<?php
class log {
	public $log = array("success" => array(), "error" => array());
	public $success_img = "img/success.png";
	public $error_img = "img/error.png";
	private $parent_folder = "../";

	public function __construct() {
	}
	
	/*
	 * Fügt dem Log einen Eintrag hinzu.
	 */
	public function add_log_entry(log_entry $entry) {
		$this->log[$entry->type][] = $entry->message;
	}
	
	/*
	 * Setzt ein "../" vor ein Bild, wenn es nicht gefunden werden kann.
	 * Voraussetzung ist, dass das Bild in einem darüberliegenden Ordner ist.
	 */
	private function get_url($steps, $img)
	{
		$counter = 0;
		while(!file_exists($img) && $counter <= $steps)
		{
			$img = $this->parent_folder.$img;
			$counter++;
		}
		return "<img src=\"".$img."\" />";
	}
	
	/*
	 * Gibt jeden Logeintrag in einem String zurück und im Box-Format.
	 */
	public function get_log() {
		$log = "";
		if (!empty($this -> log["success"]) || !empty($this -> log["error"])) {
			$log .= "<br />";
			if(file_exists($this->success_img))
			{
			}
			/*if(preg_match("/admin/", $_SERVER['REQUEST_URI']))
			{
				$success_img = "<img src=\"../img/success.png\" />";
				$error_img = "<img src=\"../img/error.png\" />";
			}
			else
			{
				$success_img = "<img src=\"img/success.png\" />";
				$error_img = "<img src=\"img/error.png\" />";
			}*/
			$success_img = $this->get_url(1, $this->success_img);
			$error_img = $this->get_url(1, $this->error_img);
			$box = "";
			foreach ($this -> log as $key => $value) {
				if (count($this -> log[$key]) > 0) {
					if ($key == "success") {
						$box = "<div id=\"box_success\">%message%".$success_img."</div>";
					} else {
						$box = "<div id=\"box_error\">%message%".$error_img."</div>";
					}
					for ($i = 0; $i < count($this -> log[$key]); $i++) {
						$log .= str_replace("%message%", $this -> log[$key][$i], $box);
					}
				}
			}
		}
		return $log;
	}
	
	/*
	 * Setzt ein neues Success-Icon, wenn die Pfadangabe stimmt.
	 */
	public function set_success_img($img)
	{
		if(file_exists($img))
		{
			$this->success_img = $img;
		}
	}
	
	/*
	 * Setzt ein neues Error-Icon, wenn die Pfadangabe stimmt.
	 */
	public function set_error_img($img)
	{
		if(file_exists($img))
		{
			$this->error_img = $img;
		}
	}
}
?>